//
//  main.m
//  04-字典
//
//  Created by mafeng on 16/7/7.
//  Copyright © 2016年 mafeng. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Contact.h"
#import "ContactManager.h"
int main(int argc, const char * argv[]) {
    // 2. 集合
    
    // 不可变 NSSet 和 可变 NSMutableSet
    // 1> 初始化
    NSSet *set = [[NSSet alloc] initWithObjects:@"", nil];
    // 2> 构造器
    
    // 3> 系统没有提供集合的字面量
    
    // 集合去重 (删除掉数组中重复的元素)
    
    // 1> 初始化和不可变的一样
    // 2> 取值 anyObject
    // 3> 可变集合, 可变性
    
    Contact *contact = [[Contact alloc] initWithName:@"mafeng" phoneNumber:@"456454"];
    Contact *contact2 = [[Contact alloc] initWithName:@"liming" phoneNumber:@"448735"];
    [@10 description];     // 一种将数字转化为字符串的方法.....面试
    // 1. 初始化
    // 字典中只能存放对象类型
    // 如果出现汉字, 代码提示一定会失效
    NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:@"李四", @"name", nil];
    // 2> 构造器
    // 3> 字面量
    NSDictionary *diction = @{@"name": @"hanxu",
                               @"age": @(-18)};  // 有符号时括号看着整体
    // 4> 取值
    [dic objectForKey:@"age"];
    // 5> 语法糖取值 arr[下标] diction[key]
    NSLog(@"%@", diction[@"name"]);
    
    // 可变字典 NSMutableDictionary
    // 1.初始化方式 (不推荐使用字面量)
    NSMutableDictionary *mutableDic = [NSMutableDictionary dictionary];
    NSMutableDictionary *mutableDiction = [@{} mutableCopy];
    
    // 2. 取值  与不可变字典相同
    // 3. 增删改
    // 1> 添加 修改 setObject:value forKey:key
    // 如果key已经存在, 会将之前的value覆盖
    // 如果key不存在, 会直接添加
    
    // 字典中的key不要重复, 如果重复, 会以最后的value进行赋值
    
    // 移除
    [mutableDiction removeAllObjects];
    [mutableDiction removeObjectForKey:@""];
    [mutableDiction removeObjectsForKeys:@[@"", @""]];
    // 3> 语法糖
    mutableDiction[@"name"] = @"licheng";
    
//    完成以下需求
//    需求：1、定义联系人类Contact。实例变量：姓名(拼音，首字母大写)、性别、电话号码、住址、分组名称、年龄。方法：自定义初始化方法(姓名、电话号码)、显示联系人信息。
//    2、在main.m中定义字典，分组管理所有联系人。分组名为26个大写的英文字母。
//    3、可以添加联系人对象，如果姓名或电话号码为空，添加失败。添加联系人到匹配的分组。
//    4、删除某个分组的全部联系人。


    
    
    
    
    
    
    
    return 0;
}
